﻿using System.Collections.Generic;
using MJD.Comunes.DtoEntidades;
using MJD.Comunes.Entidades;

namespace MJD.Logica.Traductores
{
    /// <summary>
    /// Clase que traduce la entidad sucursal en un dtoscursal y viceversa
    /// </summary>
    public class TraductorSucursal
    {
        /// <summary> Metodo que traduce los datos de la entidad sucursal en dtoSucursal para ser serializado para enviarse por el servicio </summary>
        /// <param name="entidad">datos de la entidad a ser traducido</param>
        /// <returns>DtoSucursal</returns>
        public static DtoSucursal TraducirEntidad(Sucursal entidad)
        {
            DtoSucursal dto = new DtoSucursal();
            dto.Estatus = entidad.Estatus;
            dto.Id = entidad.Id;
            dto.Apartamento = entidad.Apartamento;
            dto.Calle = entidad.Calle;
            dto.Edificio = entidad.Edificio;
            dto.Piso = entidad.Piso;
            dto.Telefono1 = entidad.Telefono1;
            dto.Telefono2 = entidad.Telefono2;
            dto.Tipo = entidad.Tipo;

            return dto;
        }


        /// <summary> Metodo que traduce los datos del dtoSucursal en sucursal para ser manejado por el servidor </summary>
        /// <param name="dto">dato del dto para traducir en entidad</param>
        /// <returns>Aseguradora</returns>
        public static Sucursal TraducirDto(DtoSucursal dto)
        {
            Sucursal entidad = new Sucursal();
            entidad.Estatus = dto.Estatus;
            entidad.Id = dto.Id;
            entidad.Apartamento = dto.Apartamento;
            entidad.Calle = dto.Calle;
            entidad.Edificio = dto.Edificio;
            entidad.Piso = dto.Piso;
            entidad.Telefono1 = dto.Telefono1;
            entidad.Telefono2 = dto.Telefono2;
            entidad.Tipo = dto.Tipo;

            return entidad;
        }


        /// <summary> Metodo que traduce una lista de entidades a una lista de dto's </summary>
        /// <param name="listaEntidad"></param>
        /// <returns></returns>
        public static List<DtoSucursal> TraducirListaEntidad(IList<Sucursal> listaEntidad)
        {
            List<DtoSucursal> retorno = new List<DtoSucursal>();
            foreach (Sucursal entidad in listaEntidad)
            {
                retorno.Add(TraducirEntidad(entidad));
            }
            return retorno;
        }


        /// <summary> Metodo que traduce una lista de dto's a una lista de entidades </summary>
        /// <param name="listaDto">lista a traducir</param>
        /// <returns>lista de entidades</returns>
        public static IList<Sucursal> TraducirListaDto(List<DtoSucursal> listaDto)
        {
            IList<Sucursal> retorno = new List<Sucursal>();
            foreach (DtoSucursal dto in listaDto)
            {
                retorno.Add(TraducirDto(dto));
            }
            return retorno;
        } 
    
    }
}
